home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume89 / dos / fs / free2.1 < prev    next >
Encoding:
Text File  |  1989-05-18  |  15.8 KB  |  374 lines

  1. Path: wuarchive!wugate!uunet!lll-winken!ames!apple!sun!swap!page
  2. From: page%swap@Sun.COM (Bob Page)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v89i146:  free - show available disk space v2
  5. Message-ID: <105669@sun.Eng.Sun.COM>
  6. Date: 18 May 89 18:23:16 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 363
  9. Approved: page@sun.com
  10.  
  11. Submitted-by: recondo!sirius@uunet.UU.NET (Michael Stilson)
  12. Posting-number: Volume 89, Issue 146
  13. Archive-name: dos/fs/free2.1
  14.  
  15. Since version 1, Ported to Lattice (w/prototypes), made
  16. re-entrant/pure.  Report the filesystem.
  17.  
  18. [uuencoded executable included.  ..bob]
  19.  
  20. # This is a shell archive.
  21. # Remove anything above and including the cut line.
  22. # Then run the rest of the file through 'sh'.
  23. # Unpacked files will be owned by you and have default permissions.
  24. #----cut here-----cut here-----cut here-----cut here----#
  25. #!/bin/sh
  26. # shar: SHell ARchive
  27. # Run the following text through 'sh' to create:
  28. #    free.c
  29. #    makefile
  30. #    free.uu
  31. # This is archive 1 of a 1-part kit.
  32. # This archive created: Thu May 18 11:15:31 1989
  33. echo "extracting free.c"
  34. sed 's/^X//' << \SHAR_EOF > free.c
  35. X/*   Free.c  -  (c) 1989  Mike 'Sirius' Stilson - Sirius Software
  36. X *   Ver1.0    January 1989.  Written, Tested, Debugged, Re-Tested, and Finished.
  37. X *   Ver2.0 May 1989.  Ported to Lattice 5.0.2, Made re-entrant/pure. Added
  38. X *                     Prototypes, and report the filesystem.
  39. X *          Should work under Manx, remove the prototypes & use +l to compile.
  40. X *          LMK Makefile provided for lattice.
  41. X *
  42. X *            Display free/total bytes & blocks, name, and FileSys for a volume.
  43. X */
  44. X
  45. X#include <exec/types.h>
  46. X#include <exec/memory.h>
  47. X#include <libraries/dos.h>
  48. X#include <libraries/dosextens.h>
  49. X#include <proto/dos.h>
  50. X#include <proto/exec.h>
  51. X
  52. X/* Structure for all the variables we'll use */
  53. Xstruct Variables {
  54. X    struct InfoData *idata;
  55. X    struct FileLock *lock;
  56. X    BPTR   mylock;
  57. X    struct DeviceList *dev;
  58. X    char   name[80];
  59. X    char  *temp;
  60. X    ULONG  usedbytes,
  61. X           totalbytes,
  62. X           freebytes,
  63. X           bpb;
  64. X};
  65. X
  66. X/* Macro to convert a BPTR to a C Pointer.  Just for readability */
  67. X#define BPTR_TO_C(cast, var) ((struct cast *)(BADDR((ULONG)var)))
  68. X
  69. X/* Function prototypes.. */
  70. Xextern __stdargs int printf(char *,...);
  71. Xextern __stdargs int strlen(char *);
  72. Xextern __stdargs void strncpy(char *, char *, int);
  73. Xextern __stdargs void exit(long);
  74. X
  75. Xint   main(int, char **av);
  76. Xchar *GetName(struct Variables *);
  77. Xvoid  GetFree(struct Variables *);
  78. Xvoid  Oops(struct Variables *, int);
  79. X
  80. Xmain(ac,av)
  81. Xint ac; char *av[];
  82. X{
  83. X
  84. X    /* Declare a pointer to our variable structure */
  85. X    register struct Variables *Var;
  86. X
  87. X    /* Allocate space for our variables */
  88. X    if(!(Var=(struct Variables *)
  89. X        AllocMem(sizeof(struct Variables),MEMF_PUBLIC|MEMF_CLEAR))) {
  90. X        printf("Cannot allocate space for variables.\n");
  91. X        Oops(Var,0);
  92. X    }
  93. X
  94. X    /* space for InfoData structure..  must be chip */
  95. X    if(!(Var->idata=(struct InfoData *)
  96. X        AllocMem(sizeof(struct InfoData),MEMF_CLEAR|MEMF_CHIP))) {
  97. X        printf("Unable to allocate space.\n");
  98. X        Oops(Var,1);
  99. X    }
  100. X
  101. X    /* Lock the drive */
  102. X    if((Var->mylock=Lock(av[1],ACCESS_READ))==NULL) {
  103. X        printf("Attempt to lock %s failed.\n",av[1]);
  104. X        Oops(Var,2);
  105. X    }
  106. X
  107. X    /* Fill the infodata structure */
  108. X    if(!(Info(Var->mylock,Var->idata))) {
  109. X        printf("Unable to obtain info for device %s.\n",av[1]);
  110. X        Oops(Var,3);
  111. X    }
  112. X
  113. X    /* Get the volume name.  */
  114. X    printf("Volume Name: [1;4m%s[0m[%dC",GetName(Var),19-strlen(Var->name));
  115. X
  116. X    /* Get and display the free space for this volume */
  117. X    GetFree(Var);
  118. X
  119. X    Oops(Var,3);
  120. X}
  121. X
  122. Xvoid Oops(Var,level)
  123. Xstruct Variables *Var;
  124. Xint level;
  125. X{
  126. X    switch(level) {
  127. X        case 3: UnLock((BPTR)Var->mylock);
  128. X        case 2: FreeMem(Var->idata,sizeof(struct InfoData));
  129. X        case 1: FreeMem(Var,sizeof(struct Variables));
  130. X        case 0: exit(0);
  131. X    }
  132. X}
  133. X
  134. X
  135. X/*
  136. X *  The devicelist is the only way I've managed to get the Volume name.
  137. X *  InfoData->id_VolumeNode->ln_Name doesn't seem to work.
  138. X */
  139. X
  140. Xchar *GetName(Var)
  141. Xstruct Variables *Var;
  142. X{
  143. X
  144. X    Forbid();
  145. X
  146. X        Var->lock = BPTR_TO_C(FileLock, Var->mylock);
  147. X        Var->dev = BPTR_TO_C(DeviceList, Var->lock->fl_Volume);
  148. X        Var->temp = (char *)BADDR(Var->dev->dl_Name);
  149. X        strncpy(Var->name, &Var->temp[1], Var->temp[0]);
  150. X        Var->name[Var->temp[0]] = NULL;
  151. X
  152. X    Permit();
  153. X
  154. X    return(Var->name);
  155. X}
  156. X
  157. X
  158. Xstatic char *FileSystem[] = {"OFS", "FFS", "???"};
  159. X
  160. Xvoid GetFree(Var)
  161. Xstruct Variables *Var;
  162. X{
  163. X    Var->bpb         =  Var->idata->id_BytesPerBlock;
  164. X    Var->usedbytes   =  Var->bpb * Var->idata->id_NumBlocksUsed;
  165. X    Var->totalbytes  =  Var->bpb * Var->idata->id_NumBlocks;
  166. X    Var->freebytes   =  Var->totalbytes - Var->usedbytes;
  167. X
  168. X    switch(Var->bpb) {
  169. X        case 488: Var->bpb=0;
  170. X                  break;
  171. X        case 512: Var->bpb=1;
  172. X                  break;
  173. X            /* The only two DOS knows about for now.. */
  174. X        default:  Var->bpb=2;
  175. X                  break;
  176. X    }
  177. X
  178. X    printf("FileSystem: %3s\n",FileSystem[Var->bpb]);
  179. X    printf("Total bytes: %-7ld\t\tFree Bytes: %-7ld\n",Var->totalbytes,Var->freebytes);
  180. X    printf("Total blocks: %-7ld\t\tFree Blocks: %-7ld\n\n",Var->idata->id_NumBlocks,
  181. X        (Var->idata->id_NumBlocks - Var->idata->id_NumBlocksUsed));
  182. X}
  183. X
  184. SHAR_EOF
  185. echo "extracting makefile"
  186. sed 's/^X//' << \SHAR_EOF > makefile
  187. XOBJS    = Free.o
  188. XDEST    = Free
  189. X
  190. XLC      = lc
  191. XLC1     = lc1
  192. XLC2     = lc2
  193. XLCFLAGS = -ccfmsu -d0 -mas -r1 -v -w -O
  194. XLINK    = blink
  195. XLIBS    = lib:lcs.lib+lib:amiga.lib
  196. X
  197. X.c.o:
  198. X    $(LC) $(LCFLAGS) $*
  199. X
  200. X$(DEST): $(OBJS)
  201. X    $(LINK) lib:cres.o+$(OBJS) to $(DEST) LIB $(LIBS) SC SD ND VERBOSE MAP $(DEST).Map F H L O S X
  202. SHAR_EOF
  203. echo "extracting free.uu"
  204. sed 's/^X//' << \SHAR_EOF > free.uu
  205. X
  206. Xbegin 644 Free
  207. XM```#\P`````````#``````````(```9I`````````'<```/I```&:21()`!)5
  208. XM^0`````L>``$2.?`X)G\`````"`\```#Y"(\``$``4ZN_SI*@&<``;0@0"1`'
  209. XM(D`@/````',@W%.`9OH@'&<.($G1W-70((HD25.`8/`H2=G\`````$S?!P,LM
  210. XM>``$*4X"!"E/`@Q"K`(()FX!%'``(CP``#``3J[^SBEK`)@"`$JK`*QG``!P,
  211. XM(`^0KP`$!H````"`*4`!T&$``4P@:P"LT<C1R")H`!#3R=/)(`)R`!(9*4D".
  212. XM%-"!4H!"9U*``D#__I_`58!"=P@`(`)3@-2!'[(``"``4X)1R/_V'[P`("``?
  213. XM4X(?L2``(`!1RO_X(D\O"6```'@I:P`Z`=!P?U*`T:P!T&$``.!!ZP!<3J[^I
  214. XM@$'K`%Q.KOZ,*4`"""\`)$`@*@`D9Q(L;`/4($`B*```*4$"`$ZN_X(B*@`@I
  215. XM9QHD/````^U.KO_B*4`"$&<*Y8@@0"=H``@`I"!L`@@O"$AL`<P@:``D*6@`M
  216. XM!`(43KH$+DZZ"/)P`&`$("\`!"\`("P!^&<$($!.D$ZZ%W8L>``$(FP#U$ZNX
  217. XM_F).N@0$2JP""&<:(BP"$&<$3J[_W"QX``1.KO]\(FP""$ZN_H8@/````^0BO
  218. XM3)/\`````"QX``0N'RYL`@Q.KO\N(`=.=4S?!P-.=7!D8)9#^@`0<`!.KOW8;
  219. XM*4`#U&?L3G5D;W,N;&EB<F%R>0!.5?_X2.<@,B9O`")P="(\``$``2QX``1.+
  220. XMKO\Z)$`@"F822'H`UDZZ$(Y"5R\*80`!WE!/<"0B/``!``(L>``$3J[_.B2`2
  221. XM2H!F%$AZ`-1.NA!F<`$^@"\*80`!M%!/(BL`!'3^+&P#U$ZN_ZPE0``(2H!FK
  222. XM&B\K``1(>@#"3KH0.'`"/H`O"F$``89/[P`,(BH`""02+&P#U$ZN_XY*@&8:S
  223. XM+RL`!$AZ`+).NA`,<`,^@"\*80`!6D_O``PO"F$``:A!Z@`0+H@O0``43KH-R
  224. XM6'(3DD`^@2\O`!1(>@"D3KH/V"Z*80`!_G`#/H`O"F$``2!,[4P$_^A.74YU7
  225. XM0V%N;F]T(&%L;&]C871E('-P86-E(&9O<B!V87)I86)L97,N"@!5;F%B;&4@C
  226. XM=&\@86QL;V-A=&4@<W!A8V4N"@``071T96UP="!T;R!L;V-K("5S(&9A:6QEP
  227. XM9"X*`%5N86)L92!T;R!O8G1A:6X@:6YF;R!F;W(@9&5V:6-E("5S+@H`5F]LW
  228. XM=6UE($YA;64Z(!M;,3LT;25S&ULP;1M;)61#``!/1E,`1D93`#\_/P!&:6QEV
  229. XM4WES=&5M.B`E,W,*``!4;W1A;"!B>71E<SH@)2TW;&0)"49R964@0GET97,ZG
  230. XM("4M-VQD"@``5&]T86P@8FQO8VMS.B`E+3=L9`D)1G)E92!";&]C:W,Z("4M6
  231. XM-VQD"@H`3E4``$CG`!(F;P`0,"T`#`Q```1D.N-`3OL``F`J8!Q@#DYQ(BL`I
  232. XM""QL`]1.KO^F(E-P)"QX``1.KO\N(DMP="QX``1.KO\N0J=.N@_:6$],WT@`(
  233. XM3EU.=4Y5__A(YP`B+'@`!$ZN_WP@;0`(("@`".6`(4``!")`(BD`$.6!(4$`L
  234. XM#")!("D`*.6`(4``8$/H`!`@0$7H``%R`!(0/P$O"B\)+TD`%DZZ"O(@;0`([
  235. XM(&@`8'``$!`@;0`(0C``$"QX``1.KO]V("\`%DSM1`#_\$Y=3G5.5?_T+PLF=
  236. XM;P`8(%,@*``4)T``<"(H`!`O0``(3KH0O"=``&0B+P`(+T``#"`H``Q.NA"H%
  237. XM)T``:"(O``R0@2=``&P@+P`(#(````(`9PX,@````>AF#D*K`'!@#G`!)T``V
  238. XM<&`&<`(G0`!P("L`<'(`,@#E@4'L```O,!@`2'K^2DZZ#5(NJP!L+RL`:$AZ"
  239. XM_DQ.N@U"(%,@*``,(@"2J``0+H$O`$AZ_EQ.N@TJ)FW_\$Y=3G4``$YU3G5(+
  240. XMYP<P/B\`&"9O`!H\+P`>/P=.NA(L5$\D0"`*9@1P_V`T""H``P`!9PYP`C\`A
  241. XM0J<_!TZZ#1Q03S\&+PLO*@`"3KH.ID_O``HJ`$IL`>1G!'#_8`(@!4S?#.!.H
  242. XM=0```````'!A3E7_T$CG)S`F;P!0)&\`5'X`?`!Z`'``&WP`(/_[<@`[0?_X$
  243. XM.WS____V0>W_V!M`__4;0/_\.T'_[#M!_^XK2/_42A-G0G``$!-R&%U!:SBP^
  244. XM>Q`(9O9.^Q`$`"-@```@`"!@```6`"M@```,`"U@```"?@%@#GP!8`IZ`6`&@
  245. XM&WP``?_\4HM@NA`3<C"P`68&4HL;0?_[<"JP$V80(%)#Z``")(D[4/_X4HM@]
  246. XM#DAM__@O"TZZ"CA03];`$!-R+K`!9B92BW`JL!-F$"!20^@``B2).U#_]E*+,
  247. XM8`Y(;?_V+PM.N@H*4$_6P!`3<FRP`68*&WP``?_U4HM@"')HL`%F`E*+$!MR#
  248. XM`!(`&T#_]'`P74!K``)<LGL`"&;T3OL`!`!C8``",@!S8``!\`!88``!A`!XR
  249. XM8``!?@!P8``!9`!O8``!$`!U8```Y`!D8````DHM__5G#"!20^@`!"2)(!!@O
  250. XM#"!20^@``B2),!!(P"M`__!L"G(!1*W_\#M!_^Y*;?_N9P1P+6`*2@9G!'`K8
  251. XM8`)P(!M`_]AP`!`&,BW_[H)`<``0!8)`9PA2K?_44FW_["\M__`O+?_43KH(T
  252. XMB%!/.T#_TC`M__9*0&H&<@$[0?_V,"W_TC(M__:20$BM``+_T&\N(&W_U")(D
  253. XMTL%@`A+84<C__'``$"W_^S(M_]`@;?_48`(0P%')__PP+?_V.T#_TM%M_^Q!W
  254. XM[?_8*TC_U$H'9P`!5AM\`"#_^V```4Q*+?_U9PP@4D/H``0DB2`08`P@4D/H<
  255. XM``(DB7``,!`K0/_P8`#_8$HM__5G#"!20^@`!"2)(!!@#"!20^@``B2)<``PL
  256. XM$"M`__!*+?_\9Q(@;?_4$/P`,#M\``'_["M(_]0O`"\M_]1.N@?F4$\[0/_28
  257. XM8`#_)!M\`##_^S`M__9*0&H&.WP`"/_V2BW_]6<,(%)#Z``$)(D@$&`,(%)#!
  258. XMZ``")(EP`#`0*T#_\$HM__QG%B!M_]00_``P$/P`>#M\``+_["M(_]0O`"\ME
  259. XM_]1.N@?(4$\[0/_2<%BP+?_T9@#^N$AM_]A.N@946$]@`/ZJ(%)#Z``$)(DB6
  260. XM4"M)_]1F"$'Z`-PK2/_4(&W_U$H89OQ3B)'M_]0[2/_L,"W_]DI`:RJPP&\F6
  261. XM.T#_[&`@.WP``?_L(%)#Z``")(DP$!M`_]A"+?_98`9P`&```(PP+?_L,BW_V
  262. XM^+)`;`AT`#M"__A@!)%M__A*!V<V4VW_[&T8<``@;?_4$!@_`"M(_]0@;0`07
  263. XM3I!43V#B4VW_^&U(<``0+?_[/P`@;0`03I!43V#H4VW_^&T2<``0+?_[/P`@W
  264. XM;0`03I!43V#H4VW_[&T8<``@;?_4$!@_`"M(_]0@;0`03I!43V#B(`M,WPSD9
  265. XM3EU.=0``3E7_]DCG`3`F;P`>)&\`(BMM`!#_]AX:2@=G-'`EO@!F(K`29@12H
  266. XMBF`:+PM(;?_V+PIA`/O$3^\`#"M`__IG!"1`8-)P`!`'/P!.DU1/8,9,WPR`7
  267. XM3EU.=4Y5__)(YR$R)F\`*@QL`"`#0FP``(@0$W(@L`%G#'()L`%G!G(*L`%F9
  268. XM!%*+8.A*$V=J,"P#0DC`Y8!2;`-"0>P#2-'`)$AP(K`39B92BR2+2A-G"G`BJ
  269. XML!-G!%*+8/)*$V8,<`$_`$ZZ#>!43V">0AM@FB2+2A-G&!`3<B"P`6<0<@FP<
  270. XM`6<*<@JP`6<$4HM@Y$H39@)@!D(;8`#_<DIL`T)F!B!L`@A@!$'L`T@I2`-$5
  271. XM2FP#0F9\0?H!)$/L`P@BV"+8(M@BV#*0(FP"""!I`"1P*#\`+R@`!$AL`PA.E
  272. XMN@2.3^\`"D'L`P@B""0\```#[BQL`]1.KO_B*4`"&BE``B!R!#E!`AXI0`(F$
  273. XM.4$").6`D\DL>``$*T#_\DZN_MH@;?_R(D`C:``(`*1^`"M`__9@+BQL`]1.Y
  274. XMKO_**4`"&BQL`]1.KO_$*4`"($'Z`*(B""0\```#[4ZN_^(I0`(F?@0@!P!`C
  275. XM@`&!;`(8(`<`0(`"@6P"'@!L@`,")$IL`&QG!'``8`0P/(``+@!";``X(`<`;
  276. XM0``!.4``-CE\``$`4"`'`$```CE``$XY?``"`&@@!P!``(`Y0`!F0?H*ABE('
  277. XM`?PO+`-$/RP#0DZZ]=9"5TZZ"`1,[4R$_]Y.74YU8V]N.C$P+S$P+S,R,"\XY
  278. XM,"\`*@`````````````````````````````````````````````````O"R9O8
  279. XM``A*:P`09PP(*P`#`!-F!'``8#8_+`'(3KH'BE1/)T``!"=```Q*@&8*.7P`V
  280. XM#`/0</]@%C=L`<@`$'#SP6L`$G``-T``"C=```@F7TYU````````````````9
  281. XM``!.5?_R2.<O$#XO`"XF;P`P*`=P,<!K`!)G!G#_8``"9@@K``<`$E;`1`!(!
  282. XM@"P`2FL`$&8``(0(*P`"`!-F>G``-T``"G+_OD%G``(Z+PM.NO]06$]*0&<,\
  283. XM".L`!0`3</]@``(B".L``0`32@9G#C`K`!`B`$1!-T$`"F`(,"L`$#=```I3%
  284. XM:P`*;18@:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PL_`6$`_U1<3R(`Z
  285. XM(`%@``'.""L``@`39U1P_[Y`9@9P`&```;H@!QM`__]*!F<@<@J^068:<@(_\
  286. XM`4AZ`:H_*P`4.T'_]DZZ]]I03RH`8!AR`3\!2&W__S\K`!0[0?_V3KKWP%!/J
  287. XM*@!^_V```-P(ZP`!`!-*!F=2</^^0&=,5&L`"G(*OD%F)B!K``1#Z``!)TD`.
  288. XM!!"\``TR*P`*2D%K"B\+/P!A`/ZT7$]2:P`*(&L`!$/H``$G20`$(`<0@#(K%
  289. XM``I*06L``1A^_R`K``20JP`,.T#_]F=N""L`!@`29U!P`C\`0J<_*P`43KH$7
  290. XMAE!/*T#_\DH&9SA3K?_R;3)"9R\M__(_*P`43KH$:'`!/H!(;?_]/RL`%$ZZ.
  291. XM`YQ/[P`.2FP!Y&8*$"W__7(:L`%GR#\M__8O*P`,/RL`%$ZZ]N103RH`8`)ZG
  292. XM`'#_ND!F"`CK``4`$V`,NFW_]F<&".L`!``32@9G#C(K`!`D`41"-T(`"F`8Y
  293. XM""L``@`39PAR`#=!``I@"#(K`!`W00`*(&L`#"=(``2^0&<N4VL`"FT6(&L`U
  294. XM!$/H``$G20`$(`<0@'(`$@!@$B`'<@`2`"\+/P%A`/V:7$\B`'`PP&L`$F<$#
  295. XM</]@#'#_N$!F!'``8`(@!$S?"/1.74YU#0H``$CG`#`F;P`,)$M*$F<D<``0D
  296. XM$D'L`,4(,``!``!G"G(`$@`$00`@8`1R`!(`%(%2BF#8(`M,WPP`3G4`````-
  297. XM`````'!A(F\`""!O``0P+P`,(@A@!!#99PA1R/_Z8`9"&%'(__P@`4YU3E7_Z
  298. XM^DCG`S`F;P`>)&\`(CXO`"8@2DH89OQ3B)'*+`@@2TH89OQ3B)'+(`@B2]+`\
  299. XM*TG_^KQ'8P(L!R`&($I@`A+84<C__"!M__I",&@`(`M,WPS`3EU.=2!O``0@;
  300. XM"$H89OQ32)'`(`A.=0``0H`P+P`(8`0@+P`((&\`!$Y5__0B3W(*3KH%O`9!M
  301. XM`#`2P4J`9O`@"1#AO\EF^D(0D(].74YU``!"@#`O``A@!"`O``@@;P`$3E7_=
  302. XM]")/(@`"00`'!D$`,!+!YHAF\"`)$.&_R6;Z0A"0CTY=3G4``#`Q,C,T-38W<
  303. XM.#EA8F-D969"@#`O``A@!"`O``@@;P`$0^\`!#(``D$`#Q+[$-3HB&;R(`DB[
  304. XM#UB!$.&RB6;Z0A"0@4YU(&\`!")(<@!P`"\"#!``*V<&#!``+68"4D@0&`0`5
  305. XM`#!M$@P```EN#"0!Y8'2@M*!TH!@Y@P1`"UF`D2!)!\@"%.`(&\`"#"!D(E.L
  306. XM=4Y5_^A(YP$R+B\`-$J';@9P_V```-)P"+Z`;`(N`"`'5H`N``)'__PD;0`(R
  307. XM(&T`"-''WZP`'D/L`!HF42M(__`K2?_T(`MG``"0($L@*P`$T<`K2/_L(FW_X
  308. XM\+?)8Q`DBR5'``0L;?_T+(IP`&!XM\EF&BQ3)(X@*P`$(@#2AR5!``0L;?_T]
  309. XM+(IP`&!:M<AD")^L`!YP_V!.M<AF+$J39PX@4[/(8PB?K``></]@.-^K``1*1
  310. XMDV<.L]-F"B`I``31JP`$)I%P`&`>*TO_]"MM_^S_Z"938`#_;B!M__0@BD*2'
  311. XM)4<`!'``3-],@$Y=3G4``````````'!A2.<',#XO`!@F;P`:/"\`'C\'3KH%,
  312. XMF%1/)$`@"F8$</]@(#\&+PLO*@`"3KH"\$_O``IZ`#H`2FP!Y&<$</]@`B`%N
  313. XM3-\,X$YU+P<^+P`(4FP#R%-L`$9M%B!L`$!#Z``!*4D`0"`'$(!R`!(`8!0@/
  314. XM!W(`$@!(;``\/P%.NOHH7$\B`"X?3G5.50``+PLF;P`,0FP#R$AM``PO"TAZV
  315. XM_ZQ.NO<X2&P`/'#_/P!.NOGX,"P#R"9M__Q.74YU``!(YP\0/B\`&"PO`!HZ>
  316. XM+P`>/P=.N@3<5$\F0"`+9@1P_V`>/P4O!B\K``).N@&\3^\`"B@`2FP!Y&<$6
  317. XM</]@`B`$3-\(\$YU``````````!P84Y5__A(YP,P+B\`($J';@9P`&```+APB
  318. XM"+Z`;`(N`"`'5H`N``)'__Q%[``:)E(@"V="("L`!+"';32PAV8.(%,DB)^LD
  319. XM`!X@"V```((@*P`$D(=R"+"!;18@2]'')(@D2"23)4``!)^L`!X@"V!>)$LFA
  320. XM4V"Z,"P`<$C`(@?2@%.!,"P`<$C`+T``%"`!(B\`%$ZZ`@XR+`!P2,%.N@'D)
  321. XM+`!0AB`&5H`L``)&__PO!DZZ!4!83R9`(`MG$"\&+PM.NOT\+H=A`/\Z8`)PO
  322. XM`$SM#,#_Z$Y=3G4``````````'!A+P<^+P`(<``P!R\`3KK_$EA/+A].=0``\
  323. XM2.<#$#XO`!!'[``D(`MG,@@K``(`$V8F""L``0`39QX@*P`$D*L`#"P`2D9GS
  324. XM$#\&+RL`##\K`!1.NO$N4$\F4V#*/P=.N@0N5$],WPC`3G5(YS<0+B\`'"9O_
  325. XM`"`\+P`D2JP!_&<$3KH#B$)L`>0@!DC`(@<D"R8`+&P#U$ZN_]`J`'#_NH!F2
  326. XM#DZN_WPY0`'D.7P`!0/0(`5,WPCL3G4``$CG/P`N+P`<+"\`(#HO`"1*K`'\9
  327. XM9P1.N@,X0FP!Y'``,`53@"(')`8F`"QL`]1.KO^^*`!P_[B`9@Y.KO]\.4`!.
  328. XMY#E\`!8#T"`%#$```F<4#$```6<(2D!F&"`&8!0@!-"&8`XB!W0`=@`L;`/4X
  329. XM3J[_ODS?`/Q.=4CG-Q`N+P`<)F\`(#PO`"1*K`'\9P1.N@+`0FP!Y"`&2,`BA
  330. XM!R0+)@`L;`/43J[_UBH`</^Z@&8.3J[_?#E``>0Y?``%`]`@!4S?".Q.=0``,
  331. XM+P<N+P`(2JP!_&<$3KH">B('+&P#U$ZN_]QP`"X?3G5(YS``)``F`4A"2$/$O
  332. XMP<;`P,'40TA"0D+0@DS?``Q.=4J`:@``'D2`2H%J```,1(%A```@1(%.=6$`_
  333. XM`!A$@$2!3G5*@6H```Q$@6$```9$@$YU+P)(030!9@``(DA`2$%(0C0`9P``%
  334. XM!H3!,`)(0#0`A,$P`DA",@(D'TYU+P-V$`Q!`(!D```&X9E10PQ!"`!D```&P
  335. XMZ9E90PQ!(`!D```&Y9E50TI!:P``!N.94T,T`.:H2$)"0N:J2$.`P38`,`(TA
  336. XM`TA!Q,&0@F0```A30]"!9/YR`#(#2$/GN$A`P4$F'R0?3G5.5?^@2.<S,GX`2
  337. XM(&P"%!XH__]P3[Y`;P(N`"`'0^W_KV`"$MA1R/_\0C5PKY/)+'@`!$ZN_MHF[
  338. XM0$JK`*QG4"`K`*SE@"1`+"H`.$J&9@0L*P"@2H9G."(&0?H`MB0(=@LL;`/4[
  339. XM3J[_T"!'4D<@"!N\``H`KR`'2,`B!D/M_Z\D"28`+&P#U$ZN_]!P_V!.2JP#;
  340. XMS&820_H`AG``+'@`!$ZN_=@I0`/,0>W_KRE(`)1(>``\2'@`^G``+P`O`$AL!
  341. XM`+!(;`"<2&P`B$*G3KH!"$_O`"!3@&<$</]@`G``3-],S$Y=3G4J*B!5<V5R7
  342. XM($%B;W)T(%)E<75E<W1E9"`J*@``0T].5$E.544``$%"3U)4`"HJ*B!"<F5A3
  343. XM:SH@`&EN='5I=&EO;BYL:6)R87)Y````````````````````+P<^+P`(<``Y?
  344. XM0`'D2D=K)+YL``QL'B`'<@;!P4'L`AA*<`@`9PX@!\'!0>P"&-'`(`A@"#E\J
  345. XM``D#T'``+A].=0```````'!A2.<!`G``(CP``#``+'@`!$ZN_LXN``*'```PT
  346. XM`$J'9@1P`&`@2JP!_&<8(&P!_$Z02D!F!'``8`QP%#\`3KH`1E1/(`=,WT"`:
  347. XM3G5AM$YU``!(YS`R+&P#S"!O`!@B;P`<)&\`("9O`"0@+P`H(B\`+"0O`#`FP
  348. XM+P`T3J[^I$S?3`Q.=0``2.<'`#XO`!`\+``,4T9*1FLN(`9R!L'!0>P"&#HP!
  349. XM"`!*!6<8"`4``F82(`;!P4'L`A@O,`@"3KK\O%A/4T9@SB`'2,`O`$ZZZ(18-
  350. XM3TS?`.!.=0``2.<`,B9L`]@@"V<4)%,B2R`K``@L>``$3J[_+B9*8.B1R"E(;
  351. XM`]PI2`/83-],`$YU2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z)D`@"V8$<`!@3
  352. XM.B='``A%[`/8(&H`!"=(``21R":(2I)F`B2+2JH`!&<&(FH`!"*+)4L`!$JL#
  353. XM`!!F!"E+`!!!ZP`,(`A,WTR`3G4``````````````````````^P````!````(
  354. XM`@````8````````#\@```^D````````#\@```^H```!W```#I@```ZH```.N)
  355. XM`"@`````````````````````````````````/```````````````````````D
  356. XM````````5```````````````````````````````````````````````````4
  357. XM````````@`````0```#__P````X`#@```````!>,`````/__````!``$````'
  358. XM``````````!T__\````$``0````````7J`````#__P````0`!````````!>R(
  359. XM```````@("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0@
  360. XM$!`0$!`0$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!L
  361. XM`0$!`0$!$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0("`@Z
  362. XM("`@("`@("@H*"@H("`@("`@("`@("`@("`@("`@2!`0$!`0$!`0$!`0$!`00
  363. XM$(2$A(2$A(2$A(00$!`0$!`0@8&!@8&!`0$!`0$!`0$!`0$!`0$!`0$!`0$02
  364. XM$!`0$!""@H*"@H("`@("`@("`@("`@("`@("`@("`A`0$!`@`````@``````F
  365. XM``,````\````)````)@```/L````!@````````"\````J````(`````(````<
  366. X-!``````````````#\I@`1
  367. X``
  368. Xend
  369. Xsize 7168
  370. SHAR_EOF
  371. echo "End of archive 1 (of 1)"
  372. # if you want to concatenate archives, remove anything after this line
  373. exit
  374.